Skip to content

fix: remove an accidentally committed .claude gitlink - #41

Merged
ExtraToast merged 1 commit into
mainfrom
fix/remove-accidental-claude-gitlink
Aug 27, 2026
Merged

fix: remove an accidentally committed .claude gitlink#41
ExtraToast merged 1 commit into
mainfrom
fix/remove-accidental-claude-gitlink

Conversation

@ExtraToast

Copy link
Copy Markdown
Contributor

This is breaking the estate governance audit. My fault, and the fix is small.

What happened

My cross-repo context bump (#39) used workspace/scripts/open-pr-across.sh, which runs git add -A. That swept the untracked .claude/worktrees/generic-500 directory into the commit — and because that directory has its own .git file, it went in as a gitlink (mode 160000), not as files:

160000 b5471873...  .claude/worktrees/generic-500

A gitlink with no matching .gitmodules entry breaks recursive checkout. Once the workspace pointer advanced to that commit (workspace#62), governance-audit.yml began failing:

fatal: No url found for submodule path
'services/auth-api/.claude/worktrees/generic-500'
##[error]The process '/usr/bin/git' failed with exit code 128

Fix

Remove the gitlink, and gitignore .claude/ so it cannot recur here.

Why not the shared template

agent-kit deliberately commits .claude/ — it ships agents/, commands/, hooks/, settings.json and skills/. So this belongs in individual repos' .gitignore, not in repo-template's.

Only this repo was affected: I checked every member repo, and auth-api is the only one where .claude/ was committed unintentionally.

The wider lesson

open-pr-across.sh doing git add -A means any untracked file present in a working tree gets committed by a cross-repo run. That is a sharp edge on a tool designed to touch every repo at once, and I have reported it against the script.

🤖 Generated with Claude Code

My cross-repo context bump (#39) used a script that does 'git add -A',
which swept the untracked .claude/worktrees/generic-500 directory into the
commit. It went in as a gitlink - mode 160000 - because that directory
contains its own .git file.

A gitlink with no matching .gitmodules entry breaks recursive checkout:

  fatal: No url found for submodule path
  'services/auth-api/.claude/worktrees/generic-500'

Once the workspace pointer advanced to that commit, the estate's
governance-audit workflow started failing at checkout, because it clones
the workspace with --recurse-submodules.

Removes the gitlink and gitignores .claude/, which is local Claude Code
session state and should never have been committable here.

Note agent-kit deliberately commits .claude/ - it ships agents, commands,
hooks and skills - so this belongs in each repo's .gitignore rather than
the shared template.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@ExtraToast ExtraToast added the type: bug Something is broken or behaving incorrectly. label Aug 27, 2026
@ExtraToast ExtraToast self-assigned this Aug 27, 2026
@ExtraToast
ExtraToast merged commit 1071472 into main Aug 27, 2026
10 checks passed
@ExtraToast
ExtraToast deleted the fix/remove-accidental-claude-gitlink branch August 27, 2026 09:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: bug Something is broken or behaving incorrectly.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant